package fr.alesia.capitale.bean.simple;

import fr.alesia.capitale.Capitales;
import fr.alesia.capitale.bean.Pays;

public class PaysSimple implements Pays {

	private String
		pays,
		capitale
	;
	
	private Integer
		niveau
	;

	public PaysSimple(String pays, String capitale, Integer niveau) {
		
		this.pays = pays;
		this.capitale = capitale;
		this.niveau = niveau;
	}

	public String getPays() {
		return pays;
	}

	public void setPays(String pays) {
		this.pays = pays;
	}

	public String getCapitale() {
		return capitale;
	}

	public void setCapitale(String capitale) {
		this.capitale = capitale;
	}

	public Integer getNiveau() {
		return niveau;
	}

	public void setNiveau(Integer niveau) {
		this.niveau = niveau;
	}

	public String getDrapeau() {
		return Capitales.DRAPEAUX + pays + ".gif";
	}

	public void setDrapeau(String drapeau) {
		// TODO Auto-generated method stub
	}

	public int compare(Pays pA, Pays pB) {
		
		if(pA == null){	
			if(pB == null){
				return 0;
			}
			else{
				return -1;
			}
		}
		else{		
			if(pA.getPays() == null){	
				if(pB == null){		
					return 1;
				}
				else{				
					return -1;
				}
			}
			else{			
				return pA.getPays().compareTo(pB.getPays());
			}
		}
	}

	public int compareTo(Pays other) {

		return this.compare(this, other);
	}
	
	@Override
	public int hashCode() {
		
		final int prime = 31;
		int result = 1;
		result = prime * result + (pays == null ? 0 : pays.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object object) {
		
		if(this == object){
			return true;
		}
		if(object == null){
			return false;
		}
		if(this.getClass() != object.getClass()){
			return false;
		}
		PaysSimple other = (PaysSimple)object;
		if(pays == null) {
			if (other.pays != null){
				return false;
			}
		}
		else if (!pays.equals(other.pays)){
			return false;
		}
		return true;
	}

	@Override
	public String toString() {
		
		return "Pays : " + pays + ", Capitale : " + capitale + ", Niveau : " + niveau;
	}
}
